package erreAga.ws.cliente.impl;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.soap.SOAPBinding;

import erreAga.ws.cliente.ClienteWebService;
import erreAga.ws.service.ErreAgaWebService;

public class ClienteWebServiceImpl implements ClienteWebService {

  private ErreAgaWebService erreAgaWebService;

  private static final QName SERVICE_NAME = new QName(
      "http://service.ws.erreAga/", "ErreAgaWebService");
  private static final QName PORT_NAME = new QName(
      "http://service.ws.erreAga/", "ErreAgaWebServicePort");

  private ErreAgaWebService getErreAgaWebService() {
    if (this.erreAgaWebService  == null) {
      Service service = Service.create(SERVICE_NAME);
      String endpointAddress = "http://localhost:9000/erreAga";
      service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING,
          endpointAddress);
      this.erreAgaWebService = service.getPort(ErreAgaWebService.class);
    }
    return this.erreAgaWebService;
  }


  @Override
  public String geraContracheque(String matriculaFuncionario, String mesAno) {
    return this.getErreAgaWebService().geraContracheque(matriculaFuncionario, mesAno);
  }


  @Override
  public Integer calculaHoraExtras(Integer quantidadeDiasChegadaAs8h,
      Integer quantidadeDiasChegadaAs10h, Integer quantidadeSabadosChegadaAs8h,
      Integer quantidadeSabadosChegadaAs10h, Integer quantidadeFolgasMes,
      Integer quantidadeMinutosApos18h) {
    // TODO Auto-generated method stub
    return this.getErreAgaWebService().calculaHoraExtras(quantidadeDiasChegadaAs8h, quantidadeDiasChegadaAs10h, quantidadeSabadosChegadaAs8h, quantidadeSabadosChegadaAs10h, quantidadeFolgasMes, quantidadeMinutosApos18h);
  }

}
